package com.wrb.base.redis;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

/**
 * @author wrb
 * @date 2019/11/26 14:32
 */
@Component
public class JedisClientSigle implements JedisClient {

	@Autowired
	private JedisPool jedisPool;

	@Override
	public String set(String key, String value) {
		// 获取jedis对象
		Jedis jedis = jedisPool.getResource();
		String result = jedis.set(key, value);
		//释放资源
		jedis.close();
		return result;
	}

	@Override
	public String get(String key) {
		// 获取jedis对象
		Jedis jedis = jedisPool.getResource();
		String result = jedis.get(key);
		//释放资源
		jedis.close();
		return result;
	}

	@Override
	public Long hset(String key, String item, String value) {
		// 获取jedis对象
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.hset(key, item, value);
		//释放资源
		jedis.close();
		return result;
	}

	@Override
	public String hget(String key, String item) {
		// 获取jedis对象
		Jedis jedis = jedisPool.getResource();
		String result = jedis.hget(key, item);
		//释放资源
		jedis.close();
		return result;
	}

	@Override
	public Long incr(String key) {
		// 获取jedis对象
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.incr(key);
		//释放资源
		jedis.close();
		return result;
	}

	@Override
	public Long decr(String key) {
		// 获取jedis对象
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.decr(key);
		//释放资源
		jedis.close();
		return result;
	}

	@Override
	public Long expire(String key, int second) {
		// 获取jedis对象
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.expire(key, second);
		//释放资源
		jedis.close();
		return result;
	}

	@Override
	public Long ttl(String key) {
		// 获取jedis对象
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.ttl(key);
		//释放资源
		jedis.close();
		return result;
	}

	@Override
	public Long hdel(String key, String item) {
		// 获取jedis对象
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.hdel(key, item);
		//释放资源
		jedis.close();
		return result;
	}

	@Override
	public Boolean exists(String key) {
		Jedis jedis = jedisPool.getResource();
		Boolean result = jedis.exists(key);
		jedis.close();
		return result;
	}

	@Override
	public Long del(String key) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.del(key);
		jedis.close();
		return result;
	}

	@Override
	public String setex(String key, int seconds, String value) {
		Jedis jedis = jedisPool.getResource();
		String result = jedis.setex(key, seconds, value);
		jedis.close();
		return result;
	}

	public JedisPool getJedisPool() {
		return jedisPool;
	}

	public void setJedisPool(JedisPool jedisPool) {
		this.jedisPool = jedisPool;
	}

}